import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;

/**
 * Created with IntelliJ IDEA.
 * Description: 字节流文件的读操作
 */
public class FileTest8 {
    public static void main(String[] args) {
        // 构造方法中需要指定文件路径
        // 此处的路径可以是绝对/相对路径，也可以是 File 对象
        // 1. 创建对象
        //    自动释放资源
//        try(InputStream inputStream = new FileInputStream("d:/test.txt");) {
//            // 2. 尝试一个字节一个字节读取，把整个文件读完
//            while(true) {
//                // 之所以需要用 int 返回而不用byte，其中一个重要原因就是避免读到0xff和-1冲突
//                int b = inputStream.read();
//                // -1 表示已经读完了
//                if(b == -1) {
//                    break;
//                }
//                System.out.println(b);
//            }
//        } catch (IOException e) {
//            throw new RuntimeException(e);
//        }

        // 一次读取若干字节
        try(InputStream inputStream = new FileInputStream("d:/test.txt")) {
            while(true) {
                byte[] buffer = new byte[1024];
                int count = inputStream.read(buffer);
                if(count == -1) {
                    break;
                }
                for (int i = 0; i < count; i++) {
                    System.out.println(buffer[i]);
                }
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }

    }
}
